#! /bin/sh
echo "\nTest caso de prueba enunciado"
echo "-----------------------------\n"
echo "Test 1 ./tp0 -h"
echo "---------------"
echo "Comando: ./tp0 -h\n"
./tp0 -h

echo "\nTest 2 ./tp0"
echo "---------------"
echo "Se simula la entrada standard por medio de un archivo de texto y se envía el resultado a un "
echo "archivo de salida para su posterior validación."
echo "\nComando: ./tp0 </tmp/entrada.bin >/tmp/salida.txt\n"
head -c 20 maximum_overdrive.bin >/tmp/entrada.bin
./tp0 </tmp/entrada.bin >/tmp/salida.txt
head -c 20 /tmp/entrada.bin
echo ""
head -c 60 /tmp/salida.txt
head -c 60 maximum_overdrive.txt >/tmp/referencia.txt
echo "\n\nSi aquí no aparece mensaje de "diferencias entre archivos" la ejecución fue correcta:"
echo "-----------------------------------------------------------------------------------\n"
diff -q /tmp/salida.txt /tmp/referencia.txt

echo "\nTest 3 ./tp0 -i -"
echo "------------------"
echo "Se simula la entrada standard por medio de un archivo de texto y se envía el resultado a un "
echo "archivo de salida para su posterior validación."
echo "\nComando: ./tp0 -i - </tmp/entrada.bin >/tmp/salida.txt\n"
head -c 20 maximum_overdrive.bin >/tmp/entrada.bin
./tp0 -i - </tmp/entrada.bin >/tmp/salida.txt
head -c 20 /tmp/entrada.bin
echo ""
head -c 60 /tmp/salida.txt
head -c 60 maximum_overdrive.txt >/tmp/referencia.txt
echo "\n\nSi aquí no aparece mensaje de "diferencias entre archivos" la ejecución fue correcta:"
echo "-----------------------------------------------------------------------------------\n"
diff -q /tmp/salida.txt /tmp/referencia.txt

echo "\nTest 4 tp0 -i - -o - -O"
echo "-----------------------"
echo "Se simula la entrada standard por medio de un archivo de texto y se envía el resultado a un "
echo "archivo de salida para su posterior validación."
echo "\nComando: ./tp0 -i - -o - -O </tmp/entrada.bin >/tmp/salida.txt\n"
head -c 20 maximum_overdrive.bin >/tmp/entrada.bin
./tp0 -i - -o - -O </tmp/entrada.bin >/tmp/salida.txt
head -c 20 /tmp/entrada.bin
echo ""
head -c 60 /tmp/salida.txt
head -c 60 maximum_overdrive.txt >/tmp/referencia.txt
echo "\n\nSi aquí no aparece mensaje de "diferencias entre archivos" la ejecución fue correcta:"
echo "-----------------------------------------------------------------------------------\n"
diff -q /tmp/salida.txt /tmp/referencia.txt

echo "\nTest 5 tp0 -b"
echo "-------------"
echo "Se simula la entrada standard por medio de un archivo y se envía el resultado a un "
echo "archivo de salida para su posterior validación."
echo "\nComando: ./tp0 -b </tmp/entrada.bin >/tmp/salida.txt\n"
head -c 60 maximum_overdrive.txt >/tmp/entrada.txt
./tp0 -b </tmp/entrada.txt >/tmp/salida.bin
echo ""
head -c 60 /tmp/entrada.txt
echo ""
head -c 20 /tmp/salida.bin
head -c 20 maximum_overdrive.bin >/tmp/referencia.bin
echo "\n\nSi aquí no aparece mensaje de "diferencias entre archivos" la ejecución fue correcta:"
echo "-----------------------------------------------------------------------------------\n"
diff -q /tmp/salida.bin /tmp/referencia.bin

echo "\nTest 6 tp0 -i /dev/urandom -o /tmp/urandom-octaldump -l 12 "
echo "-----------------------"
echo "Se toman 20 bytes del archivo /dev/urandom y se envía el resultado del volcado a un archivo llamado "
echo "/tmp/urandom-octaldump para su posterior validación no automática."
echo "\nComando: ./tp0 -i - -o - -O </tmp/entrada.bin >/tmp/urandom-octaldump\n"
head -c 20 /dev/urandom >/tmp/entrada.bin
./tp0 -i - -o - -O </tmp/entrada.bin >/tmp/urandom-octaldump
head -c 20 /tmp/entrada.bin
echo ""
head -c 60 /tmp/urandom-octaldump
echo ""

echo "\nTest 7  ./tp0 -l 4 -i /tmp/testfile.bin -o /tmp/testfile.oct"
echo "-----------------------"
echo "\nComando: ./tp0 -l 4 -i /tmp/testfile.bin -o /tmp/testfile.oct\n"
echo "test text." >/tmp/aux.bin
head -c 10 /tmp/aux.bin >/tmp/testfile.bin
head -c 12 /tmp/testfile.bin
echo ""
./tp0 -l 4 -i /tmp/testfile.bin -o /tmp/testfile.oct
head -c 36 /tmp/testfile.oct
echo ""
echo "164145163164\n040164145170\n164056" >/tmp/aux.txt
head -c 32 /tmp/aux.txt >/tmp/referencia.txt
echo "\n\nSi aquí no aparece mensaje de "diferencias entre archivos" la ejecución fue correcta:"
echo "-----------------------------------------------------------------------------------\n"
diff -q /tmp/testfile.oct /tmp/referencia.txt

echo "\nTest 8  ./tp0 -l 4 -d \" \" -i /tmp/testfile.bin -o /tmp/testfile.oct"
echo "-----------------------"
echo "\nComando: ./tp0 -l 4 -d \" \" -i /tmp/testfile.bin -o /tmp/testfile.oct\n"
echo "test text." >/tmp/aux.bin
head -c 10 /tmp/aux.bin >/tmp/testfile.bin
head -c 12 /tmp/testfile.bin
echo ""
./tp0 -l 4 -d " " -i /tmp/testfile.bin -o /tmp/testfile.oct
head -c 50 /tmp/testfile.oct
echo ""
echo "164 145 163 164 \n040 164 145 170 \n164 056 " >/tmp/aux.txt
head -c 42 /tmp/aux.txt >/tmp/referencia.txt
echo "\n\nSi aquí no aparece mensaje de "diferencias entre archivos" la ejecución fue correcta:"
echo "-----------------------------------------------------------------------------------\n"
diff -q /tmp/testfile.oct /tmp/referencia.txt

echo ""